home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
X User Tools
/
X User Tools (O'Reilly and Associates)(1994).ISO
/
sources
/
xedit
/
util.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-09-27
|
4KB
|
162 lines
#if (!defined(lint) && !defined(SABER))
static char Xrcsid[] = "$XConsortium: util.c,v 1.14 89/10/07 14:59:43 kit Exp $";
#endif /* lint && SABER */
/*
* COPYRIGHT 1987
* DIGITAL EQUIPMENT CORPORATION
* MAYNARD, MASSACHUSETTS
* ALL RIGHTS RESERVED.
*
* THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE AND
* SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION.
* DIGITAL MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THIS SOFTWARE FOR
* ANY PURPOSE. IT IS SUPPLIED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
*
* IF THE SOFTWARE IS MODIFIED IN A MANNER CREATING DERIVATIVE COPYRIGHT RIGHTS,
* APPROPRIATE LEGENDS MAY BE PLACED ON THE DERIVATIVE WORK IN ADDITION TO THAT
* SET FORTH ABOVE.
*
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose and without fee is hereby granted, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Digital Equipment Corporation not be
* used in advertising or publicity pertaining to distribution of the software
* without specific, written prior permission.
*/
#include <stdio.h>
#include "xedit.h"
#include <X11/Xos.h> /* for types.h */
#include <sys/stat.h>
extern Widget messwidget;
void
XeditPrintf(str)
char * str;
{
XawTextBlock text;
static XawTextPosition pos = 0;
text.length = strlen(str);
text.ptr = str;
text.firstPos = 0;
text.format = FMT8BIT;
XawTextReplace( messwidget, pos, pos, &text);
pos += text.length;
XawTextSetInsertionPoint(messwidget, pos);
}
Widget
MakeCommandButton(box, name, function)
Widget box;
char *name;
XtCallbackProc function;
{
Widget w = XtCreateManagedWidget(name, commandWidgetClass, box, NULL, ZERO);
if (function != NULL)
XtAddCallback(w, XtNcallback, function, (caddr_t) NULL);
return w;
}
Widget
MakeStringBox(parent, name, string)
Widget parent;
String name, string;
{
Arg args[5];
Cardinal numargs = 0;
Widget StringW;
XtSetArg(args[numargs], XtNeditType, XawtextEdit); numargs++;
XtSetArg(args[numargs], XtNstring, string); numargs++;
StringW = XtCreateManagedWidget(name, asciiTextWidgetClass,
parent, args, numargs);
return(StringW);
}
/* Function Name: GetString
* Description: retrieves the string from a asciiText widget.
* Arguments: w - the ascii text widget.
* Returns: the filename.
*/
String
GetString(w)
Widget w;
{
String str;
Arg arglist[1];
XtSetArg(arglist[0], XtNstring, &str);
XtGetValues( w, arglist, ONE);
return(str);
}
/* Function Name: MaybeCreateFile
* Description: Checks to see if file exists, and if no creates it.
* Arguments: file - name of file to check.
* Returns: none.
*/
FileAccess
MaybeCreateFile(file)
char * file;
{
Boolean exists;
/*
* If file doesn't exit create it.
*/
if (access(file, F_OK) != 0)
creat(file, 0777);
return(CheckFilePermissions(file, &exists));
}
/* Function Name: MaybeCreateFile
* Description: Checks to see if file exists, and if no creates it.
* Arguments: file - name of file to check.
* Returns: none.
*/
FileAccess
CheckFilePermissions(file, exists)
char * file;
Boolean *exists;
{
char temp[BUFSIZ], *ptr;
if (access(file, F_OK) == 0) {
*exists = TRUE;
if (access(file, R_OK) != 0)
return(NO_READ);
if (access(file, R_OK | W_OK) == 0)
return(WRITE_OK);
return(READ_OK);
}
*exists = FALSE;
strcpy(temp, file);
if ( (ptr = rindex(temp, '/')) == NULL)
strcpy(temp, ".");
else
*ptr = '\0';
if (access(temp, R_OK | W_OK | X_OK) == 0)
return(WRITE_OK);
return(NO_READ);
}